/*    */ package com.zimbra.cs.index.analysis;
/*    */ 
/*    */ import java.io.IOException;
/*    */ import java.util.Collection;
/*    */ import java.util.Iterator;
/*    */ import java.util.LinkedList;
/*    */ import java.util.List;
/*    */ import org.apache.lucene.analysis.TokenStream;
/*    */ import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ public final class MimeTypeTokenStream
/*    */   extends TokenStream
/*    */ {
/*    */   private static final int MIN_TOKEN_LEN = 3;
/*    */   private static final int MAX_TOKEN_LEN = 256;
/*    */   private static final int MAX_TOKEN_COUNT = 100;
/* 40 */   private final List<String> tokens = new LinkedList();
/*    */   private Iterator<String> itr;
/* 42 */   private final CharTermAttribute termAttr = (CharTermAttribute)addAttribute(CharTermAttribute.class);
/*    */   
/*    */   public MimeTypeTokenStream() {
/* 45 */     this.tokens.add("none");
/*    */   }
/*    */   
/*    */   public MimeTypeTokenStream(String src) {
/* 49 */     add(src);
/* 50 */     this.tokens.add(this.tokens.isEmpty() ? "none" : "any");
/*    */   }
/*    */   
/*    */   public MimeTypeTokenStream(Collection<String> list) {
/* 54 */     for (String src : list) {
/* 55 */       add(src);
/*    */     }
/* 57 */     this.tokens.add(this.tokens.isEmpty() ? "none" : "any");
/*    */   }
/*    */   
/*    */   private void add(String src) {
/* 61 */     if (this.tokens.size() >= 100) {
/* 62 */       return;
/*    */     }
/* 64 */     String token = src.trim();
/* 65 */     if ((token.length() < 3) || (token.length() > 256)) {
/* 66 */       return;
/*    */     }
/* 68 */     token = token.toLowerCase();
/* 69 */     this.tokens.add(token);
/*    */     
/* 71 */     int delim = token.indexOf('/');
/* 72 */     if (delim > 0) {
/* 73 */       String primary = token.substring(0, delim).trim();
/* 74 */       if (primary.length() >= 3) {
/* 75 */         this.tokens.add(primary);
/*    */       }
/*    */     }
/*    */   }
/*    */   
/*    */   public boolean incrementToken() throws IOException
/*    */   {
/* 82 */     if (this.itr.hasNext()) {
/* 83 */       this.termAttr.setEmpty().append((String)this.itr.next());
/* 84 */       return true;
/*    */     }
/* 86 */     return false;
/*    */   }
/*    */   
/*    */ 
/*    */   public void reset()
/*    */   {
/* 92 */     this.itr = this.tokens.iterator();
/*    */   }
/*    */   
/*    */   public void close()
/*    */   {
/* 97 */     this.tokens.clear();
/*    */   }
/*    */ }


/* Location:              /home/mint/zimbrastore.jar!/com/zimbra/cs/index/analysis/MimeTypeTokenStream.class
 * Java compiler version: 7 (51.0)
 * JD-Core Version:       0.7.1
 */